<?php
/**
 * Created by PhpStorm
 * User: ZhouFurong
 * Date: 2021/1/16
 * Time: 16:35
 */

/**
 * 不希望比较一个变量和一个常量是意外地赋值
 */

// 方案
$dwarves = 12;
if(12 == $dwarves) {print '...';}

// 把常量放在左边会触发赋值操作符的一个解析错误。
//if(12 = $dwarves) {print '会直接触发报错';}

if($dwarves = 12){print '会悄悄地执行，这会将 12 赋值给 $dwareves';}

/**
 * 如果将一个常量放在一个比较表达式的左边，就会把这个比较强制为该常量的类型。
 * 如要比较一个整数和一个变量 （这个变量可能为整数，也可能为字符串） 这就会带来 问题
 * $dwarves 为 0 时 ， 0 == $dwarves 为 true 不过当 $dwarves = sleeps 时 0 == $dwarves 也是为 true。
 * 由于比较式 左边有一个整数（0）,PHP  比较之前会把 右边字符串 转换为一个整数 0 。
 * 未来避免这种情况 应当使用 0 === $dwarves
 */


